<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Geo3D - ECHARTS-GL</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes"> <!-- Fullscreen Landscape on iOS -->
    <link rel="stylesheet" href="./common.css">
</head>
<body>
<div id="main"></div>
<script src="../node_modules/echarts/dist/echarts.js"></script>
<script src="../dist/echarts-gl.js"></script>
<script src="lib/jquery.min.js"></script>
<script src="js/commonUI.js"></script>
<script>
    var chart = echarts.init(document.getElementById('main'));

    $.getJSON('data/buildings.json', function (buildingsGeoJSON) {


        echarts.registerMap('buildings', buildingsGeoJSON);

        var regions = buildingsGeoJSON.features.map(function (feature) {
            return {
                name: feature.properties.name,
                value: Math.random(),
                height: Math.max(Math.sqrt(feature.properties.height), 0.1)
            };
        });

        console.profile('setOption');
        chart.setOption({
            visualMap: {
                show: false,
                min: 0.4,
                max: 1,
                inRange: {
                    color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
                }
            },
            series: [{
                type: 'map3D',
                map: 'buildings',
                shading: 'realistic',
                realisticMaterial: {
                    roughness: 0.6,
                    detailTexture: 'asset/woods.jpg',
                    textureTiling: 20
                },
                postEffect: {
                    enable: true,
                    bloom: {
                        enable: false
                    },
                    screenSpaceAmbientOcclusion: {
                        enable: true,
                        quality: 'high',
                        radius: 10,
                        intensity: 1.2
                    },
                    depthOfField: {
                        enable: false,
                        focalRange: 5,
                        fstop: 1,
                        blurRadius: 6
                    }
                },
                groundPlane: {
                    show: true
                },
                light: {
                    main: {
                        intensity: 6,
                        shadow: true,
                        shadowQuality: 'high',
                        alpha: 30
                    },
                    ambient: {
                        intensity: 0
                    },
                    ambientCubemap: {
                        texture: 'asset/canyon.hdr',
                        exposure: 2,
                        diffuseIntensity: 1,
                        specularIntensity: 1
                    }
                },
                viewControl: {
                    alpha: 80,
                    distance: 100
                },

                itemStyle: {
                    color: '#aaa'
                    // borderColor: '#222',
                    // borderWidth: 1
                },

                label: {
                    textStyle: {
                        color: 'white'
                    }
                },

                boxWidth: 200,
                regionHeight: 1,

                data: regions
            }]
        });
        console.profileEnd('setOption');

    });
    window.addEventListener('resize', function () {
        chart.resize();
    });
</script>
</body>
</html>
